/**
  ETFRoot project, Anyang Normal University && IMP-CAS
  \brief To tell ROOT what ROOT functions to register for the classes in libETFBase.so
  About the notation used here: The trailing "+" tells rootcint to implement
  `Streamer` method for the class with byte count so that it can be written to a
  ROOT file, while "-" tells rootcint **not** to generate the `Streamer` method,
  and "!" means not overload "<<" for the class, etc. "+" is always recommended.
  \author SUN Yazhou, asia.rabbit@163.com
  \since 2021-10-06
  \date 2022-04-28 last modified
  \attention
  changelog
  <table>
  <tr>  <th>Date         <th>Author      <th>Description                   </tr>
  <tr>  <td>2021-10-06   <td>Asia Sun    <td>file created                  </tr>
  </table>

  \copyright Copyright (c) 2021 Anyang Normal U. && IMP-CAS with LGPLv3 LICENSE
*/

#ifdef __CINT__

// config
#pragma link C++ class ETFParaManager+;
#pragma link C++ class ETFYaml+;

// data formats
#pragma link C++ class ETFAmplitudeChannel+;
#pragma link C++ class ETFHPTDCChannel+;
#pragma link C++ class ETFPXIFragment+;
#pragma link C++ class ETFPXISection+;
#pragma link C++ class ETFRawChannel+;
#pragma link C++ class ETFVMEEvent+;
#pragma link C++ class ETFVMERawEvent+;
#pragma link C++ struct fragment_head+;
#pragma link C++ struct section_head+;
#pragma link C++ struct vme_block_head+;
#pragma link C++ struct vme_event_head+;

// det
#pragma link C++ class ETFDC+;
#pragma link C++ class ETFDCTa+;
#pragma link C++ class ETFDCTaL+;
#pragma link C++ class ETFDetector+;
#pragma link C++ class ETFDetectorManager+;
#pragma link C++ class ETFPDC+;
#pragma link C++ class ETFPDCL+;
#pragma link C++ class ETFPDCR+;
#pragma link C++ class ETFTOFWall+;
#pragma link C++ class ETFTimer+;
#pragma link C++ class ETFTstart+;
#pragma link C++ class ETFTstop+;
#pragma link C++ class ETFTstop4+;
#pragma link C++ class ETFVDC+;
#pragma link C++ enum TrackType;

// hit
#pragma link C++ class ETFDCHit+;
#pragma link C++ class ETFHit+;
#pragma link C++ class ETFPlaHit+;

// pid
#pragma link C++ class ETFPID+;
#pragma link C++ class ETFPIDManager;

// sources
#pragma link C++ class ETFMixedOfflineSource+;
#pragma link C++ class ETFOfflineSource+;
#pragma link C++ class ETFOnlineSource+;
#pragma link C++ class ETFPXIOfflineSource+;
#pragma link C++ class ETFVMEOfflineSource+;

// tasks
#pragma link C++ class ETFAnaTask+;
#pragma link C++ class ETFUnpackTask+;

// tools
#pragma link C++ class ETFMath;
#pragma link C++ class ETFMsg;
#pragma link C++ class ETFTest;

// track
#pragma link C++ class ETF3DTrack+;
#pragma link C++ class ETFGlobalTracker+;
#pragma link C++ class ETFPostMagTracker+;
#pragma link C++ class ETFPostTaTracker+;
#pragma link C++ class ETFPreTaTracker+;
#pragma link C++ class ETFTaTracker+;
#pragma link C++ class ETFTaLTracker+;
#pragma link C++ class ETFTaL2Tracker+;
#pragma link C++ class ETFTrack+;
#pragma link C++ class ETFTracker+;
#pragma link C++ class ETFVTrackManager;
#pragma link C++ class ETFTrackManager;
#pragma link C++ class ETFTaTrackManager;
#pragma link C++ class ETFTrackTa+;
#pragma link C++ class ETFTrackTa4+;
#pragma link C++ class ETFVTrack+;
#pragma link C++ class map<TrackType, ETFVTrack *>+;

// unpack
#pragma link C++ class ETFPXIUnpacker+;
#pragma link C++ class ETFUnpacker+;
#pragma link C++ class ETFVMEUnpacker+;

// vis
#pragma link C++ class ETFVisual;

// ana
#pragma link C++ class ETFExpData;

#endif
